package pl.peterjack.servlet.dane.firma;

import java.io.IOException;
import java.util.List;

import javax.jdo.PersistenceManager;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import pl.peterjack.model.PMF;
import pl.peterjack.model.dane.Firma;
import pl.peterjack.model.dane.RezultatOdpowiedz;

import com.google.gson.Gson;

public class FirmaRejestracja extends HttpServlet {

	@Override 
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		PersistenceManager pm = PMF.get().getPersistenceManager();
	    RezultatOdpowiedz result = new RezultatOdpowiedz();
	    // sprawdzamy login 
	    try {
	    	String queryStr = "select from " + Firma.class.getName() + 
	        " where login == :p1  ";
		    List<Firma> results = (List<Firma>) pm.newQuery(queryStr).execute(req.getParameter("login"));
		    if (results != null && results.size()>0) {
		    	result.setSuccess(false);
		    	result.setData( null );
		    	result.setMessage("Login juz zajety");
		    	Gson gson = new Gson();
			    resp.setCharacterEncoding("UTF-8");
		        resp.getWriter().println(gson.toJson(result));
		        return; 
		    }
		    
	    } catch (Exception e) {
			// nie robimy nic
		}
	    // rejestrujemy firme 
	    Firma firma = new Firma();
	    firma.setAdres(req.getParameter("adres"));
	    firma.setEmail(req.getParameter("email"));
	    firma.setEmailWlasciciela(req.getParameter("emailWlasciciela"));
	    String haslo = req.getParameter("haslo")+"";
		
	    firma.setHaslo(haslo);
	    firma.setImieNazwisko(req.getParameter("imieNazwisko"));
	    firma.setKlientPodgladDanych("on".equals(req.getParameter("klientPodgladDanych")) ? true : false);
	    firma.setKlientZmianaDanych("on".equals(req.getParameter("klientZmianaDanych")) ? true : false );
	    firma.setKodPocztowy(req.getParameter("kodPocztowy"));
	    firma.setLogin(req.getParameter("login"));
	    firma.setMiejscowosc(req.getParameter("miejscowosc")); 
	    firma.setNazwa(req.getParameter("nazwa")); 
	    firma.setOpis(req.getParameter("opis"));  
	    firma.setStronaWww(req.getParameter("stronaWww"));
	    firma.setTelefon(req.getParameter("telefon"));
	    firma.setNip(req.getParameter("nip"));
	    // TODO jakas walidacja 
	    // TODO szukanie i sprawdzanie czy id nie jestjuz zajete
	    
	    // zapisujemy
	    try {
	    	pm.makePersistent(firma);
	    	result.setSuccess(true);
	    	result.setData( firma.getId() );
        } catch(Exception e) {
        	e.printStackTrace(); 
        	result.setSuccess(false);
        } finally {
            pm.close();
        }
	    Gson gson = new Gson();
	    //resp.setContentType("application/json");
	    resp.setCharacterEncoding("UTF-8");
        resp.getWriter().println(gson.toJson(result));
	}

	

}
